package com.suns.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableLogic;
import com.baomidou.mybatisplus.annotation.TableName;
import com.google.gson.Gson;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;

//lombok 一个java类库,提供一组注解,用于简化实体类的开发
@Data  //不包括构造方法,包含get,set,hashcode,tostring等方法
@AllArgsConstructor //有参构造方法
@NoArgsConstructor //无参构造方法
@TableName("user")//用来处理类与表的映射关系
public class User {
    @TableId(type = IdType.AUTO)
    //id自增策略 auto(0):使用数据库中id自增策略控制id生成. none(1):不设置id生成策略. input(2):用户手工输入id. assign_id(3):雪花算法生成id(兼容数值型和字符串型).assign_uuid(4):以uuid生成算法作为id生成策略
    private Integer id;
    private String tel;
    //    @TableField(select = false) //用来处理属性(字段显示与否,在表中是否存在的等).
    private String pwd;
    private String name;
    private BigDecimal money;
    private String code1;
    private String code2;
    private String code3;
    private String usertype;
    @TableLogic(value = "0", delval = "1")//逻辑删除字段
    private Integer deleted;

    @Override
    public String toString() {
        return new Gson().toJson(this);
    }

    public static User fromJsonString(String json) {
        return new Gson().fromJson(json, User.class);
    }
}
